Notifications
Clear all

sintaxe if varios and or e <> no vba

18 Posts
2 Usuários
0 Reactions
2,695 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Qual a sintaxe no vba para formula de comparação com IF ?

no excel ficaria assim
Se( E (Plan_Aq<>Plan_Princ ; De_1<>""); OU (Quant > 2; Quant<1001; Fixacopy=True;Para_2<>"") Then

Se( E(A<>B; C<>""); ou( q>2; q<1001 ; F=Verdadeiro; p <> "")

Mas e no vba?
If Plan_Aq <> Plan_Princ And De_1 <> "" And Quant > 2 Or Quant < 1001... tentei mas deu nó no raciocínio

 
Postado : 30/03/2014 6:28 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu e minha boca grande : :?

IF"..Then..ElseIf...Else..End If. não é bem oq eu quero, já que é o mesmo que SE alinhado

isso não precisava nem falar :P

Mas o que devemos nos atentar é não confundir o "IF" com "E", ou seja, Operadores Condicionais(Tomadas de Decisões) com Operadores Lógicos entre outros.

Eu só procurei explanar minha opinião pelo o que eu estava entendendo do tópico, e elucidar à aqueles que acessam o tópico e não teem tanta intimidade com o VBA ou alguma experiência a entender os raciocínios e algumas diferenças.

Será que isso está ajudando alguem? ou todo mundo que olha e tenta entender vai direto procurar uma aspirina?
Creio que já consigo me virar daqui, melhor trancar o tópico

Pode ter certeza que está ajudando a muitos, qualquer assunto, não importando se é simples ou um pouco mais complicado sempre é de interesse de alguem.

Peço que me desculpe se de alguma forma acabei ofendendo, vou procurar ser um pouco mais atento a minhas observações.

[]s

 
Postado : 01/04/2014 5:39 am
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Eu é que peço desculpas se fui mal interpretado,
Eu falei em tom de brincadeira. :oops:

tbm estou aqui para aprender, e como vc, tbm não sei até onde o conhecimento alheio vai,
Então qualquer explanação para saber se estamos no mesmo assunto, é plausível de aceitação.

"não sei nem do meu conhecimento, e pra falar a verdade depois que escrevi fiquei na duvida se não falei alguma bobagem :? e ainda estou"
mas maus entendidos acontecem né,
desculpa mesmo,
E mesmo pq os link que vc postou é de grande valia gostei muito do conteúdo geral, é muito fácil de entender .

 
Postado : 01/04/2014 6:06 am
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Para encerrar o assunto...

Mesmo para os IF com testes lógicos podem existir alternativas e maneiras de simplificar as linhas de programa.

No meu caso que é simples, escolhi separar os IF,
inverti alguns testes para dar o resultado esperado

If Plan_Aq = Plan_Princ Then MsgBox "Por Favor NÃO faça isso Aqui!": Exit Sub
If mac1 = "" Then MsgBox "Favor inserir o setor de origem": Exit Sub
If Fixacopy = False And Para_2 = "" Then MsgBox "Por favor especifique setor de destino E/OU nova quantidade de Colunas": Exit Sub
If Quant <> "" And Quant < 3 Or Quant <> "" And Quant > 1000 Then MsgBox "Quantidade de Colunas impossível de processar": Exit Sub

Como só passa para a segunda se a primeira for atendida, não é necessário repetir teste que os testes de cima excluíram a possibilidade de acontecer.
Isso além de simplificar a macro ainda me possibilitou adicionar mensagens personalizadas para cada situação
é como um Se(E(E();OU();E();OU());execute;fim)

Mas não importando a necessidade ou a escolha,
O importante é treinar até assimilar o uso, e repensar para ver se não existe possibilidades melhores para oq se quer fazer.

Até mais e desculpe os maus entendidos.

Ainda tenho um longo caminhos com outros IF ´s, sem falar que mesmo esses já tem previsão de serem alterados para a inclusão de combobox com os nomes das planilhas e se possível dos setores "oq não tenho nem ideia de como fazer "
.

 
Postado : 01/04/2014 8:45 am
Página 2 / 2